iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Python

一起來用 Snakify 練練手系列 第 10

【一起來用 Snakify 練練手】Day10 Lesson 4 概念

  • 分享至 

  • xImage
  •  

For 迴圈與 range()

在 Python 中,for 迴圈是一個強大且常用的工具,允許我們遍歷序列(如列表、字串或元組)並對其中的每個元素進行操作。而當我們想要遍歷一個範圍內的數字時,range() 函數則是最常用的配合工具。

1. range() 函數介紹

range() 是 Python 中內建的一個函數,用來生成一系列的數字。它通常與 for 迴圈搭配使用,可以讓我們在指定的範圍內進行迭代。

range() 的基本使用方式

range() 函數有三種常見的用法:

  1. range(stop):從 0 開始生成到 stop - 1 為止的整數序列。
  2. range(start, stop):從 start 開始生成到 stop - 1 為止的整數序列。
  3. range(start, stop, step):從 start 開始生成到 stop - 1,每次間隔 step 數字的整數序列。

範例:

# range(stop)
for i in range(5):
    print(i)  # 輸出:0, 1, 2, 3, 4

在這個範例中,range(5) 生成了從 0 到 4 的數字序列,並將每個數字在迴圈中列印出來。

2. 使用 range()for 迴圈範例

範例 1:指定範圍

如果我們想要從一個特定的數字開始迭代,可以指定 startstop 參數。例如,我們可以從 3 開始,迭代到 7:

for i in range(3, 8):
    print(i)  # 輸出:3, 4, 5, 6, 7

在這個範例中,range(3, 8) 生成了從 3 到 7 的數字。

範例 2:指定步長(step

有時我們不希望每次只遞增 1,可以指定 step 參數來控制每次的遞增或遞減量。例如,我們可以每次遞增 2:

for i in range(0, 10, 2):
    print(i)  # 輸出:0, 2, 4, 6, 8

這裡 range(0, 10, 2) 生成了 0 到 8,並且每次遞增 2 的數字。

範例 3:反向迭代

如果我們想要從一個較大的數字開始,並向下遞減,也可以使用 range() 函數並設置 step 為負數:

for i in range(10, 0, -1):
    print(i)  # 輸出:10, 9, 8, 7, 6, 5, 4, 3, 2, 1

在這個範例中,range(10, 0, -1) 讓我們從 10 迭代到 1,每次遞減 1。

3. for 迴圈與 range() 的應用

範例 4:求和計算

我們可以使用 for 迴圈與 range() 來計算一個範圍內所有數字的總和。例如,計算從 1 到 10 的總和:

total = 0
for i in range(1, 11):
    total += i
print("總和為:", total)  # 輸出:總和為 55

這段程式碼利用 range(1, 11) 生成 1 到 10 的數字,然後將這些數字逐個相加,得到總和 55。

範例 5:生成列表

使用 for 迴圈和 range(),我們可以將結果存儲在一個列表中。以下範例展示了如何生成 1 到 10 的平方數:

squares = []
for i in range(1, 11):
    squares.append(i**2)
print(squares)  # 輸出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

這裡我們使用 for 迴圈將每個數字的平方計算出來並加入列表。

4. 總結

for 迴圈與 range() 是 Python 中強大的組合,能夠讓我們輕鬆地遍歷範圍內的數字並執行操作。range() 提供了靈活的選項來定義起點、終點和步長,適用於各種計算和迭代場景。熟悉這個組合,能夠幫助我們在程式設計中解決很多實際問題。


上一篇
【一起來用 Snakify 練練手】Day9 Lesson 3 練習題參考解答-3
下一篇
【一起來用 Snakify 練練手】Day11 Lesson 4 練習題參考解答-1
系列文
一起來用 Snakify 練練手21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言